package jblip.apps.clip.cmds;

import java.util.Properties;

import jblip.BlipClient;

public abstract class ClipCommand {
  protected static final Properties properties;

  static {
    properties = new Properties();
  }

  public static final void setProperty(String key, String value) {
    ClipCommand.properties.setProperty(key, value);
  }
  
  public static final void unsetProperty(String key) {
    ClipCommand.properties.remove(key);
  }
  
  public static final String getProperty(String key) {
    return ClipCommand.properties.getProperty(key);
  }
  

  public static boolean hasProperty(String key) {
    return ClipCommand.properties.containsKey(key);
  }

  public int getRequiredArgsCount() {
    return 1;
  }

  public int getMaximumArgsCount() {
    return 1;
  }

  public abstract String getName();

  public abstract String getUsageMessage();

  public abstract void execute(BlipClient client, String[] args);
}
